// Problem: C. Anagram Search
// Contest: Codeforces - Codeforces Round 103 (Div. 2)
// URL: https://codeforces.com/contest/144/problem/C
// Memory Limit: 256 MB
// Time Limit: 2000 ms
// Author: OrangeSummer
//
// Powered by CP Editor (https://cpeditor.org)
#include <bits/stdc++.h>
using namespace std;
#define IOS \
ios_base::sync_with_stdio(0); \
cin.tie(0); \
cout.tie(0);
// #define int long long
#define endl '\n'
#define STED(_x) _x.begin(), _x.end()
#define rep(_x, _y, _z) for (int _x = _y; _x < _z; _x++)
typedef long long i64;
typedef pair<int, int> pii;
const int N = 2e5 + 10;
// dont use umap!!!
void solve()
{
string s, t;
cin >> s >> t;
vector<int> cnt(26), vcnt(26);
int ans = 0;
for (auto i : t)
{
cnt[i - 'a']++;
}
for (int i = 0; i < s.size(); i++)
{
if (s[i] != '?')
vcnt[s[i] - 'a']++;
if (i >= t.size() && s[i - t.size()] != '?')
vcnt[s[i - t.size()] - 'a']--;
if (i >= t.size() - 1)
{
bool ok = 1;
for (int i = 0; i < 26; i++)
{
if (vcnt[i] > cnt[i])
{
ok = 0;
break;
}
}
ans += ok;
}
}
cout << ans << endl;
}
signed main()
{
int _ = 1;
// cin >> _;
while (_--)
solve();
return 0;
}
1618A - Polycarp and Sums of Subsequences | 1618B - Missing Bigram |
938. Range Sum of BST | 147. Insertion Sort List |
310. Minimum Height Trees | 2110. Number of Smooth Descent Periods of a Stock |
2109. Adding Spaces to a String | 2108. Find First Palindromic String in the Array |
394. Decode String | 902. Numbers At Most N Given Digit Set |
221. Maximal Square | 1200. Minimum Absolute Difference |
1619B - Squares and Cubes | 1619A - Square String |
1629B - GCD Arrays | 1629A - Download More RAM |
1629C - Meximum Array | 1629D - Peculiar Movie Preferences |
1629E - Grid Xor | 1629F1 - Game on Sum (Easy Version) |
2148. Count Elements With Strictly Smaller and Greater Elements | 2149. Rearrange Array Elements by Sign |
2150. Find All Lonely Numbers in the Array | 2151. Maximum Good People Based on Statements |
2144. Minimum Cost of Buying Candies With Discount | Non empty subsets |
1630A - And Matching | 1630B - Range and Partition |
1630C - Paint the Middle | 1630D - Flipping Range |